﻿using WMS.FC.Domain.PersistenceObject.System;

namespace WMS.FC.Domain.Repository
{
    public interface IMenuRepository : IRepositoryBase
    {
        /// <summary>
        /// 获取菜单列表
        /// </summary>
        /// <returns></returns>
        Task<List<MenuPO>> GetMenuList();

        /// <summary>
        /// 获取全部菜单列表
        /// </summary>
        /// <returns></returns>
        Task<List<MenuPO>> GetAllMenuList();

        /// <summary>
        /// 获取菜单
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<MenuPO?> GetMenu(long id);

        /// <summary>
        /// 获取菜单和子菜单
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<MenuPO?> GetMenuWithSubMenu(long id);

        /// <summary>
        /// 获取菜单和父菜单
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<MenuPO?> GetMenuWithParentMenu(long id);
    }
}
